package it.azienda.managerworkstandard.modello;

import it.azienda.framework.modello.BeanBase;
import it.azienda.framework.utilita.Utilita;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Set;
import javax.faces.model.SelectItem;

public class BeanCliente extends BeanBase{
    
    public BeanCliente() {
        this.ragioneSociale="";
        this.beanComuneResidenza=new BeanComune();
        this.beanCategoriaCli=new BeanCategoriaCli();
        this.codiceListino = new Integer(0);
        this.dettaglioSociale = "";
    }
    
    public BeanCliente(BeanFattura beanFattura,Integer codice){
        this.codice=codice;
        if(beanFattura.getRagioneSocialeCli()!=null){
            if(beanFattura.getRagioneSocialeCli().trim().equals("")){
                this.ragioneSociale="Inserire la Ragione Sociale";
            }else{
                this.ragioneSociale=beanFattura.getRagioneSocialeCli();
            }
        }else{
            this.ragioneSociale="Inserire la Ragione Sociale";
        }
        if(beanFattura.getPartitaIvaCli()!=null){
            this.partitaIva=beanFattura.getPartitaIvaCli();
        }else{
            this.partitaIva="";
        }
        if(beanFattura.getDettaglioSocialeCli()!=null){
            this.dettaglioSociale=beanFattura.getDettaglioSocialeCli();
        }else{
            this.dettaglioSociale="";
        }
        if(beanFattura.getCodiceFiscaleCli()!=null){
            this.codiceFiscale=beanFattura.getCodiceFiscaleCli();
        }else{
            this.codiceFiscale="";
        }
        if(beanFattura.getBeanComuneResidenzaCli()!=null){
            if(beanFattura.getBeanComuneResidenzaCli().getId()!=null){
                this.beanComuneResidenza=beanFattura.getBeanComuneResidenzaCli();
            }else{
                this.beanComuneResidenza=null;
            }
        }else{
            this.beanComuneResidenza=null;
        }
        if(beanFattura.getIndirizzoCli()!=null){
            this.indirizzo=beanFattura.getIndirizzoCli();
        }else{
            this.indirizzo="";
        }
        if(beanFattura.getIndirizzo2Cli()!=null){
            this.indirizzo2=beanFattura.getIndirizzo2Cli();
        }else{
            this.indirizzo2="";
        }
        this.beanCategoriaCli=null;
        this.codiceListino = new Integer(0);
    }
    
    public BeanCliente(BeanOrdiniPrev beanFattura,Integer codice){
        this.codice=codice;
        if(beanFattura.getRagioneSocialeCli()!=null){
            if(beanFattura.getRagioneSocialeCli().trim().equals("")){
                this.ragioneSociale="Inserire la Ragione Sociale";
            }else{
                this.ragioneSociale=beanFattura.getRagioneSocialeCli();
            }
        }else{
            this.ragioneSociale="Inserire la Ragione Sociale";
        }
        if(beanFattura.getPartitaIvaCli()!=null){
            this.partitaIva=beanFattura.getPartitaIvaCli();
        }else{
            this.partitaIva="";
        }
        if(beanFattura.getDettaglioSocialeCli()!=null){
            this.dettaglioSociale=beanFattura.getDettaglioSocialeCli();
        }else{
            this.dettaglioSociale="";
        }
        if(beanFattura.getCodiceFiscaleCli()!=null){
            this.codiceFiscale=beanFattura.getCodiceFiscaleCli();
        }else{
            this.codiceFiscale="";
        }
        if(beanFattura.getBeanComuneResidenzaCli()!=null){
            if(beanFattura.getBeanComuneResidenzaCli().getId()!=null){
                this.beanComuneResidenza=beanFattura.getBeanComuneResidenzaCli();
            }else{
                this.beanComuneResidenza=null;
            }
        }else{
            this.beanComuneResidenza=null;
        }
        if(beanFattura.getIndirizzoCli()!=null){
            this.indirizzo=beanFattura.getIndirizzoCli();
        }else{
            this.indirizzo="";
        }
        if(beanFattura.getIndirizzo2Cli()!=null){
            this.indirizzo2=beanFattura.getIndirizzo2Cli();
        }else{
            this.indirizzo2="";
        }
        this.beanCategoriaCli=null;
        this.codiceListino = new Integer(0);
    }
    
    
    public BeanCliente(BeanDdt beanDdt, Integer codice) {
        beanComuneResidenza = new BeanComune();
        beanCategoriaCli = new BeanCategoriaCli();
        clienteDet = new HashSet();
        this.codice = codice;
        if(beanDdt.getRagioneSocialeCli() != null) {
            if(beanDdt.getRagioneSocialeCli().trim().equals(""))
                ragioneSociale = "Inserire la Ragione Sociale";
            else
                ragioneSociale = beanDdt.getRagioneSocialeCli();
        } else {
            ragioneSociale = "Inserire la Ragione Sociale";
        }
        if(beanDdt.getDettaglioSocialeCli()!=null){
            this.dettaglioSociale=beanDdt.getDettaglioSocialeCli();
        }else{
            this.dettaglioSociale="";
        }
        if(beanDdt.getPartitaIvaCli() != null)
            partitaIva = beanDdt.getPartitaIvaCli();
        else
            partitaIva = "";
        if(beanDdt.getCodiceFiscaleCli() != null)
            codiceFiscale = beanDdt.getCodiceFiscaleCli();
        else
            codiceFiscale = "";
        if(beanDdt.getBeanComuneResidenzaCli() != null) {
            if(beanDdt.getBeanComuneResidenzaCli().getId() != null)
                beanComuneResidenza = beanDdt.getBeanComuneResidenzaCli();
            else
                beanComuneResidenza = null;
        } else {
            beanComuneResidenza = null;
        }
        if(beanDdt.getIndirizzoCli() != null)
            indirizzo = beanDdt.getIndirizzoCli();
        else
            indirizzo = "";
        if(beanDdt.getIndirizzo2Cli() != null)
            indirizzo2 = beanDdt.getIndirizzo2Cli();
        else
            indirizzo2 = "";
        beanCategoriaCli = null;
        this.codiceListino = new Integer(0);
    }
    
    private Integer id;
    private Integer codice;
    private String ragioneSociale;
    private String ragioneSocialeFind;
    private String codiceFiscale;
    private String partitaIva;
    private String telefono;
    private String telefono2;
    private String cellulare;
    private String fax;
    private String indirizzo;
    private String indirizzo2;
    private String email;
    private String note;
    private Integer codiceListino;
    private SelectItem[] listini;
    private String dettaglioSociale;
    private BeanComune beanComuneResidenza=new BeanComune();
    private String codFedelta;
    
    private SelectItem[] lista;
    private java.lang.Integer idComuneResidenza;
    
    private BeanCategoriaCli beanCategoriaCli=new BeanCategoriaCli();
    private Set clienteDet = new HashSet();
    private Set clienteFed = new HashSet();
    private Set cartaRegalo = new HashSet();
    
    
    private SelectItem[] ordinamento;
    
    public SelectItem[] getOrdinamento() {
        ordinamento = new SelectItem[5];
        ordinamento[0] = new SelectItem("", "");
        ordinamento[1] = new SelectItem("codice", "Codice");
        ordinamento[2] = new SelectItem("ragioneSociale", "Ragione Sociale");
        ordinamento[3] = new SelectItem("codiceFiscale", "Codice Fiscale");
        ordinamento[4] = new SelectItem("partitaIva", "Partita Iva");
        
        return ordinamento;
    }
    
    public void setOrdinamento(SelectItem[] ordinamento) {
        this.ordinamento = ordinamento;
    }
    public Integer getId() {
        return id;
    }
    
    public void setId(Integer id) {
        this.id = id;
    }
    
    public String getCodiceFiscale() {
        return codiceFiscale;
    }
    
    public void setCodiceFiscale(String codiceFiscale) {
        this.codiceFiscale = codiceFiscale.toUpperCase();
    }
    
    public String getFax() {
        return fax;
    }
    
    public void setFax(String fax) {
        this.fax = fax;
    }
    
    public String getEmail() {
        return email;
    }
    
    public void setEmail(String email) {
        this.email = email;
    }
    
    public String getPartitaIva() {
        return partitaIva;
    }
    
    public void setPartitaIva(String partitaIva) {
        this.partitaIva = partitaIva.toUpperCase();
    }
    
    public BeanComune getBeanComuneResidenza() {
        return beanComuneResidenza;
    }
    
    public void setBeanComuneResidenza(BeanComune beanComuneResidenza) {
        this.beanComuneResidenza = beanComuneResidenza;
    }
    
    public Integer getCodice() {
        return codice;
    }
    
    public void setCodice(Integer codice) {
        this.codice = codice;
    }
    
    public String getIndirizzo() {
        return indirizzo;
    }
    
    public void setIndirizzo(String indirizzo) {
        this.indirizzo = indirizzo;
    }
    
    public SelectItem[] getLista() {
        BeanLogin utente= (BeanLogin) Utilita.getSession().getAttribute("login");
        if(!utente.getListaOggetti().isEmpty()){
            HashMap superLista = utente.getListaOggetti();
            lista = new SelectItem[superLista.size()+1];
            lista[0] = new SelectItem("", "");
            for (int i=0; i<superLista.size(); i++) {
                String valore=((BeanCliente)superLista.get(new Integer(i))).getRagioneSociale() + " " +((BeanCliente)superLista.get(new Integer(i))).getCodice().toString();
                lista[i+1] = new SelectItem(((BeanCliente)superLista.get(new Integer(i))).getId().toString(), valore);
            }
        }else{
            lista = new SelectItem[0];
        }
        return lista;
    }
    
    public void setLista(SelectItem[] lista) {
        this.lista = lista;
    }
    
    public java.lang.Integer getIdComuneResidenza() {
        return idComuneResidenza;
    }
    
    public void setIdComuneResidenza(java.lang.Integer idComuneResidenza) {
        this.idComuneResidenza = idComuneResidenza;
    }
    
    public BeanCategoriaCli getBeanCategoriaCli() {
        return beanCategoriaCli;
    }
    
    public void setBeanCategoriaCli(BeanCategoriaCli beanCategoriaCli) {
        this.beanCategoriaCli = beanCategoriaCli;
    }
    
    public String getRagioneSocialeFind() {
        String ragioneSocialeFind="";
        String appoggio=ragioneSociale;
        boolean verifica=false;
        if(ragioneSociale.contains("'")){
            verifica = true;
        }
        
        while(verifica){
            ragioneSocialeFind += appoggio.substring(0,appoggio.indexOf("'"));
            ragioneSocialeFind +="\\";
            ragioneSocialeFind +="'";
            ragioneSocialeFind +="\\";
            appoggio = appoggio.substring(appoggio.indexOf("'")+1,appoggio.length());
            if(!appoggio.contains("'")){
                verifica=false;
            }
        }
        ragioneSocialeFind += appoggio;
        return ragioneSocialeFind;
    }
    
    public void setRagioneSocialeFind(String ragioneSociale) {
        this.ragioneSociale = ragioneSociale.toUpperCase();
    }
    
    public String getRagioneSociale() {
        return ragioneSociale;
    }
    
    public void setRagioneSociale(String ragioneSociale) {
        this.ragioneSociale = ragioneSociale.toUpperCase();
    }
    
    public String getTelefono() {
        return telefono;
    }
    
    public void setTelefono(String telefono) {
        this.telefono = telefono;
    }
    
    public String getTelefono2() {
        return telefono2;
    }
    
    public void setTelefono2(String telefono2) {
        this.telefono2 = telefono2;
    }
    
    public String getCellulare() {
        return cellulare;
    }
    
    public void setCellulare(String cellulare) {
        this.cellulare = cellulare;
    }
    
    public String getIndirizzo2() {
        return indirizzo2;
    }
    
    public void setIndirizzo2(String indirizzo2) {
        this.indirizzo2 = indirizzo2;
    }
    
    public String getNote() {
        return note;
    }
    
    public void setNote(String note) {
        this.note = note;
    }
    
    public Set getClienteDet() {
        return clienteDet;
    }
    
    public void setClienteDet(Set clienteDet) {
        this.clienteDet = clienteDet;
    }
    
    public Set getClienteFed() {
        return clienteFed;
    }
    
    public void setClienteFed(Set clienteFed) {
        this.clienteFed = clienteFed;
    }
    
    public Integer getCodiceListino() {
        return codiceListino;
    }
    
    public void setCodiceListino(Integer codiceListino) {
        this.codiceListino = codiceListino;
    }
    
    public String getDettaglioSociale() {
        return dettaglioSociale;
    }
    
    public void setDettaglioSociale(String dettaglioSociale) {
        this.dettaglioSociale = dettaglioSociale;
    }
    
    public SelectItem[] getListini() {
        
        BeanLogin login= (BeanLogin) Utilita.getSession().getAttribute("login");
        listini = new SelectItem[6];
        listini[0] = new SelectItem(new Integer(0), "Listino Pieno");
        listini[1] = new SelectItem(new Integer(1), login.getListino1());
        listini[2] = new SelectItem(new Integer(2), login.getListino2());
        listini[3] = new SelectItem(new Integer(3), login.getListino3());
        listini[4] = new SelectItem(new Integer(4), login.getListino4());
        listini[5] = new SelectItem(new Integer(5), login.getListino5());
        
        return listini;
    }
    
    public void setListini(SelectItem[] listini) {
        this.listini = listini;
    }

    /**
     * @return the codFedelta
     */
    public String getCodFedelta() {
        return codFedelta;
    }

    /**
     * @param codFedelta the codFedelta to set
     */
    public void setCodFedelta(String codFedelta) {
        this.codFedelta = codFedelta;
    }

    /**
     * @return the cartaRegalo
     */
    public Set getCartaRegalo() {
        return cartaRegalo;
    }

    /**
     * @param cartaRegalo the cartaRegalo to set
     */
    public void setCartaRegalo(Set cartaRegalo) {
        this.cartaRegalo = cartaRegalo;
    }
    
}